[アップデート] Amazon Redshiftの自動スケーリングのCREATE TABLE AS SELECT (CTAS) クエリがサポートしました #AWSreInvent
データアナリティクス事業本部のコンサルティングチームの石川です。
本日より、Amazon Redshiftが自動スケーリングのCREATE TABLE AS SELECT (CTAS) クエリがサポートしました。今後、追加のコンピューティングを使用して抽出、変換、ロード (ETL) やその他の書き込みワークロードがスケールできるようになります。
Amazon Redshiftの自動スケーリングのCTASのサポートとは
Amazon Redshiftは、プロビジョニングされたクラスタ(Provisioned Cluster)と、サーバレスの2種類あります。前者はインスタンスによってクラスタを構成するタイプ、後者はクエリのリクエストを受信するとインスタンスが起動されるサーバレスなクラスタです。違いがありますので、それぞれ分けて解説します。
プロビジョニングされたクラスタ(Provisioned Cluster)の自動スケーリングの場合
プロビジョニングされたクラスタ(Provisioned Cluster)の自動スケーリングは、正確には「同時実行スケーリング」(Concurrent Scaling)という機能で、同時実行しているクエリの数がしきい値を超えると、自動的にスケーリングクラスタが起動され、読み書きのクエリがオフロードされます。今回、同時実行スケーリングでCREATE TABLE AS SELECT (CTAS) クエリがサポートされました。
サーバレスの自動スケーリングの場合
サーバレスの自動スケーリングは、同時実行しているクエリの数がしきい値を超えると、自動的にRPU(Redshift Processing Unitsというコンピューティングの単位)がスケーリングされ、読み書きのクエリがオフロードされます。今回、自動スケーリングでCREATE TABLE AS SELECT (CTAS) クエリがサポートされました。
CREATE TABLE AS SELECT (CTAS) クエリのサポートで何が嬉しいのか
データをターゲットテーブルにロードする前に、ターゲットのデータをCTASクエリでステージングテーブルを作成した後、INSERT INTOでロードするのが一般的ですが、CTASクエリが自動スケーリングしたクラスタで実行できないと、CTASクエリが常にメインクラスタで実行する必要があり、これがボトルネックになることがありました。 今回のアップデートでこのボトルネックの解消されることで、データロードのワークロードのスケールアウトが期待できます。
最後に
Amazon Redshiftが自動スケーリングの大きな制限が解消されたことにより、Redshiftのワークロードは、同時実行スケールします。例えば、dbtのワークロードなどのようにCTASを利用するデータフレームワークをご利用の場合に、同時実行スケールすることが期待できます。